package com.joysuch.wwyt.common.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.joysuch.wwyt.common.entity.CommonBusinessNotice;
import com.baomidou.mybatisplus.extension.service.IService;
import com.joysuch.wwyt.core.bean.SimpleSelectListBean;

import java.util.Date;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author heqifeng
 * @since 2022-01-10
 */
public interface CommonBusinessNoticeService extends IService<CommonBusinessNotice> {

    /**
     * 分页获取指定类型的通知
     * @param index
     * @param pageNo
     * @param size
     * @return
     */
    IPage<CommonBusinessNotice> getNoticeType(Integer index, Integer pageNo, Integer size);

    /**
     * 获取是否有未读通知
     * @return
     */
    List<SimpleSelectListBean> getSubscriptForUnread();

    /**
     * 获取所有类型的未读通知数 value:数量，label:类型
     * @return
     */
    List<SimpleSelectListBean> getSubscriptForUnreadList();

    /**
     * 获取所有类型的通知数 value:数量，label:类型
     * @return
     */
    List<SimpleSelectListBean> getCountByGroup();

    /**
     * 已读某一类型的所有通知
     * @param index
     * @return
     */
    boolean readNoticeBatchByType(Integer index, Date sendTime);

    /**
     * 删除指定id的通知
     * @param ids
     * @return
     */
    boolean deleteNoticeBatch(List<Long> ids);

    /**
     * 删除某一类型的所有通知
     * @param index
     * @return
     */
    boolean deleteNoticeByType(Integer index);

    /**
     * 取消任务即将逾期的提醒
     */
    boolean deleteByRefIdAndTitle(Long refId);

    void deleteNotify();

    /**
     * 根据天数删除通知
     */
    void deleteNotifyByDay(Integer day);
}
